Jenkins -- CI/CD 领域的开源基石
Jenkins 是目前 CI/CD 领域应用最广泛的开源自动化服务器,由 CloudBees 和社区共同维护,支持在本地服务器或云环境中部署。访问 jenkins.io/zh 可以获取中文官方文档、下载安装包以及浏览插件生态。
Jenkins 核心特性
Jenkins 的官方文档首页列出了六大核心特点:
- 持续集成 / 持续交付:作为 CI/CD 的核心枢纽,Jenkins 能够自动化构建、测试和部署流程,将代码从提交到上线的全链路串联起来。
- 安装配置简单:通过
apt、yum、Homebrew 或 Docker 一条命令即可完成安装,Web 界面引导初始化。 - 丰富的插件生态:拥有超过 1800 个社区插件,覆盖了主流的构建工具、版本控制系统、云平台和通知服务。
- 可扩展性:基于插件体系,开发者可以编写自定义插件扩展 Jenkins 功能。国内的很多 Jenkins 云平台(如腾讯 CODING、阿里云效)本质上就是在开源 Jenkins 基础上的二次封装。
- 分布式构建:通过 Master/Agent 架构,Jenkins 可以将构建任务分发到多台机器上并行执行,充分利用集群资源。
2026 年 CI/CD 工具格局
在了解 Jenkins 之前,有必要了解当前 CI/CD 工具的整体格局。以下是 Jenkins 与主流竞品的对比:
| 维度 | Jenkins | GitHub Actions | GitLab CI |
|---|---|---|---|
| 部署方式 | 自托管(Self-hosted) | SaaS 为主 | SaaS 或自托管 |
| 配置方式 | Groovy DSL / Web UI | YAML 工作流 | YAML .gitlab-ci.yml |
| 插件生态 | 1800+ 插件 | Marketplace Actions | 内置功能丰富 |
| 学习曲线 | 较陡 | 平缓 | 中等 |
| 适用场景 | 复杂企业级、遗留系统 | GitHub 生态团队 | 端到端 DevOps |
| 成本 | 免费(自托管) | 免费额度 + 按量计费 | 免费版 + 企业版 |
| K8s 支持 | 插件实现 | 原生 Runner | 原生集成 |
Jenkins 在灵活性、插件丰富度和自托管控制力方面仍然领先,特别适合对安全合规有严格要求的企业。GitHub Actions 和 GitLab CI 则在新项目中更受欢迎,原因在于更低的运维成本和更现代的开发体验。
系统要求
Jenkins 官方给出的硬件与软件最低要求:
| 项目 | 最低要求 | 推荐配置 |
|---|---|---|
| 内存 | 512 MB | 2 GB+ |
| 磁盘空间 | 10 GB | 50 GB+ |
| Java(直装方式) | Java 8(2.492 LTS 及之前) | Java 17 或 Java 21 |
| Docker(容器方式) | Docker 20.10+ | Docker 24.x |
重要变更:Jenkins 2.492 LTS 是最后一个支持 Java 11 的 LTS 版本线。从 2.504 LTS 开始,Java 17 或 Java 21 成为最低要求。当前最新 LTS 版本为 2.504.2(2025 年 5 月发布)。
两种安装方式
Jenkins 提供两种主要的安装方式,各有适用场景:
方式一:直装(Direct Install)
直接在操作系统上安装 Jenkins,适合以下情况:
- 机器资源有限,不想额外运行 Docker 引擎
- 老式操作系统不支持 Docker(如旧版 Windows Server)
- 生产环境需要精细化控制系统级配置
- 需要直接访问宿主机硬件资源
安装后通过 systemd 管理服务,支持开机自启、日志查看和端口修改。
方式二:Docker 容器安装
使用 Docker 镜像运行 Jenkins,适合以下情况:
- 快速搭建测试 / 开发环境
- 需要环境隔离和多版本并存
- 已有 Docker 基础设施,希望统一管理
- macOS 用户推荐优先选择 Docker 方式
两种方式的详细安装步骤将在后续章节分别演示。
插件生态
Jenkins 的插件市场(plugins.jenkins.io)是其核心竞争力之一。插件按功能分为以下类别:
| 分类 | 说明 | 代表插件 |
|---|---|---|
| 管理类 | 系统管理、权限控制 | Role Strategy, Configuration as Code |
| 用户接口 | UI 增强、可视化 | Blue Ocean, Localization: Chinese |
| 构建工具 | 编译、打包 | Gradle, Maven, NodeJS |
| SCM 集成 | 版本控制对接 | Git, GitLab, GitHub |
| 部署发布 | 远程部署 | Publish Over SSH, SSH Server |
| 通知类 | 构建结果通知 | DingTalk, Email Extension |
热门插件
按下载量排序的几个关键插件:
- Localization: Chinese (Subversion) -- 汉化插件,下载量排名第一,反映出国内 Jenkins 用户的庞大规模
- Git Plugin -- Git 版本控制集成,几乎所有项目必备
- Pipeline -- 流水线核心插件,支持 Jenkinsfile 声明式/脚本式语法
- Blue Ocean -- 官方推出的现代化 Pipeline 可视化界面(已停止积极开发,但仍可使用)
- Build Timeout -- 构建超时控制,防止任务长时间挂起占用节点资源
- Publish Over SSH -- 通过 SSH 远程部署产物到目标服务器
插件安装方式
Jenkins 提供三种插件安装方式:
- 在线安装:在 Jenkins 管理界面(Manage Jenkins > Plugins > Available)中搜索并一键安装
- CLI 安装:通过 Jenkins CLI 命令行工具批量安装
- 离线上传:从 plugins.jenkins.io 下载
.hpi或.jpi文件,在管理界面上传安装
离线安装方式特别适合政企、军工等内网隔离环境,可以在外网下载插件文件后,通过 U 盘或内网传输部署完整的 CI/CD 流程。
关于 Blue Ocean 与 Pipeline Graph View
Blue Ocean 是 Jenkins 官方推出的 Pipeline 可视化工具,提供更直观的流水线编辑和查看体验。但 Blue Ocean 已于 2024 年正式废弃(deprecated),不再接收任何功能更新或安全补丁。官方推荐的替代方案是 Pipeline Graph View 插件,它提供类似的流水线可视化能力,且与 Jenkins Classic UI 深度集成,无需额外安装独立界面。初次安装 Jenkins 时,建议直接安装 Pipeline Graph View 而非 Blue Ocean。
Jenkins on Kubernetes
2026 年的一个重要趋势是 Jenkins 正在以云原生方式焕发新生。通过 Kubernetes Operator for Jenkins 和动态 Agent 调度,Jenkins 可以在 K8s 集群中按需创建和销毁构建 Pod,实现资源的弹性利用。这种方式既保留了 Jenkins 的插件生态和灵活性,又获得了 K8s 的容器编排和自愈能力,是企业渐进式云原生改造的折中方案。
关键参考资料
Jenkins 官方文档中以下章节值得重点关注:
- 用户手册 > Pipeline:流水线语法、步骤参考
- 用户手册 > Blue Ocean:可视化流水线使用指南
- 安装指南:按操作系统分类的详细安装步骤
- 插件站点:plugins.jenkins.io,包含所有插件的文档和安装说明
↑